home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 January: Mac OS SDK / Dev.CD Jan 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / AIncludes / QD3DViewer.a < prev    next >
Encoding:
Text File  |  1997-08-12  |  13.8 KB  |  474 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        QD3DViewer.a
  3. ;
  4. ;    Contains:    MacOS Viewer Controller Interface File.                                
  5. ;
  6. ;    Version:    Technology:    Quickdraw 3D 1.5.1
  7. ;                Release:    Universal Interfaces 3.0.1
  8. ;
  9. ;    Copyright:    © 1995-1997 by Apple Computer, Inc., all rights reserved.
  10. ;
  11. ;    Bugs?:        Please include the the file and version information (from above) with
  12. ;                the problem description.  Developers belonging to one of the Apple
  13. ;                developer programs can submit bug reports to:
  14. ;
  15. ;                    devsupport@apple.com
  16. ;
  17. ;
  18.     IF &TYPE('__QD3DVIEWER__') = 'UNDEFINED' THEN
  19. __QD3DVIEWER__ SET 1
  20.  
  21.     IF &TYPE('__QD3D__') = 'UNDEFINED' THEN
  22.     include 'QD3D.a'
  23.     ENDIF
  24.     IF &TYPE('__QD3DGROUP__') = 'UNDEFINED' THEN
  25.     include 'QD3DGroup.a'
  26.     ENDIF
  27.  
  28.     IF TARGET_OS_MAC THEN
  29.     IF &TYPE('__EVENTS__') = 'UNDEFINED' THEN
  30.     include 'Events.a'
  31.     ENDIF
  32.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  33.     include 'Types.a'
  34.     ENDIF
  35.     IF &TYPE('__QUICKDRAW__') = 'UNDEFINED' THEN
  36.     include 'Quickdraw.a'
  37.     ENDIF
  38.     ENDIF    ; TARGET_OS_MAC
  39.     IF TARGET_OS_MAC THEN
  40. ; typedef void *                        TQ3ViewerObject
  41.  
  42.  
  43. kQ3ViewerShowBadge                EQU        $01
  44. kQ3ViewerActive                    EQU        $02
  45. kQ3ViewerControllerVisible        EQU        $04
  46. kQ3ViewerDrawFrame                EQU        $08
  47. kQ3ViewerDraggingOff            EQU        $10
  48. kQ3ViewerButtonCamera            EQU        $20
  49. kQ3ViewerButtonTruck            EQU        $40
  50. kQ3ViewerButtonOrbit            EQU        $80
  51. kQ3ViewerButtonZoom                EQU        $0100
  52. kQ3ViewerButtonDolly            EQU        $0200
  53. kQ3ViewerButtonReset            EQU        $0400
  54. kQ3ViewerOutputTextMode            EQU        $0800
  55. kQ3ViewerDragMode                EQU        $1000
  56. kQ3ViewerDrawGrowBox            EQU        $2000
  57. kQ3ViewerDrawDragBorder            EQU        $4000
  58. kQ3ViewerDraggingInOff            EQU        $8000
  59. kQ3ViewerDraggingOutOff            EQU        $00010000
  60. kQ3ViewerDefault                EQU        $80000000
  61.  
  62. kQ3ViewerEmpty                    EQU        0
  63. kQ3ViewerHasModel                EQU        $01
  64. kQ3ViewerHasUndo                EQU        $02
  65.  
  66. ; typedef long                            TQ3ViewerCameraView
  67. kQ3ViewerCameraRestore            EQU        0
  68. kQ3ViewerCameraFit                EQU        1
  69. kQ3ViewerCameraFront            EQU        2
  70. kQ3ViewerCameraBack                EQU        3
  71. kQ3ViewerCameraLeft                EQU        4
  72. kQ3ViewerCameraRight            EQU        5
  73. kQ3ViewerCameraTop                EQU        6
  74. kQ3ViewerCameraBottom            EQU        7
  75.  
  76.  
  77. gestaltQD3DViewer                EQU        'q3vc'
  78. gestaltQD3DViewerNotPresent        EQU        0
  79. gestaltQD3DViewerAvailable        EQU        1
  80.  
  81. ; ******************************************************************************
  82. ; **                                                                             **
  83. ; **        Return viewer version number                                         **
  84. ; **                                                                             **
  85. ; ****************************************************************************
  86.  
  87. ;
  88. ; extern OSErr Q3ViewerGetVersion(unsigned long *majorRevision, unsigned long *minorRevision)
  89. ;
  90.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  91.         IMPORT_CFM_FUNCTION Q3ViewerGetVersion
  92.     ENDIF
  93.  
  94.  
  95.  
  96. ; ******************************************************************************
  97. ; **                                                                             **
  98. ; **        Return viewer release version number                                 **
  99. ; **        (in 'vers' format - e.g. 0x01518000 ==> 1.5.1 release)                 **
  100. ; **                                                                             **
  101. ; ****************************************************************************
  102.  
  103. ;
  104. ; extern OSErr Q3ViewerGetReleaseVersion(unsigned long *releaseRevision)
  105. ;
  106.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  107.         IMPORT_CFM_FUNCTION Q3ViewerGetReleaseVersion
  108.     ENDIF
  109.  
  110.  
  111. ; ******************************************************************************
  112. ; **                                                                             **
  113. ; **                        Creation and destruction                             **
  114. ; **                Note that this is not a QuickDraw 3D object                     **
  115. ; **                                                                             **
  116. ; ****************************************************************************
  117.  
  118. ;
  119. ; extern TQ3ViewerObject Q3ViewerNew(CGrafPtr port, Rect *rect, unsigned long flags)
  120. ;
  121.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  122.         IMPORT_CFM_FUNCTION Q3ViewerNew
  123.     ENDIF
  124.  
  125. ;
  126. ; extern OSErr Q3ViewerDispose(TQ3ViewerObject theViewer)
  127. ;
  128.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  129.         IMPORT_CFM_FUNCTION Q3ViewerDispose
  130.     ENDIF
  131.  
  132. ; ******************************************************************************
  133. ; **                                                                             **
  134. ; **                    Functions to attach data to a viewer                     **
  135. ; **                                                                             **
  136. ; ****************************************************************************
  137.  
  138. ;
  139. ; extern OSErr Q3ViewerUseFile(TQ3ViewerObject theViewer, long refNum)
  140. ;
  141.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  142.         IMPORT_CFM_FUNCTION Q3ViewerUseFile
  143.     ENDIF
  144.  
  145. ;
  146. ; extern OSErr Q3ViewerUseData(TQ3ViewerObject theViewer, void *data, long size)
  147. ;
  148.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  149.         IMPORT_CFM_FUNCTION Q3ViewerUseData
  150.     ENDIF
  151.  
  152. ; ******************************************************************************
  153. ; **                                                                             **
  154. ; **        Functions to write data out from the Viewer                             **
  155. ; **                                                                             **
  156. ; ****************************************************************************
  157.  
  158. ;
  159. ; extern OSErr Q3ViewerWriteFile(TQ3ViewerObject theViewer, long refNum)
  160. ;
  161.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  162.         IMPORT_CFM_FUNCTION Q3ViewerWriteFile
  163.     ENDIF
  164.  
  165. ;
  166. ; extern unsigned long Q3ViewerWriteData(TQ3ViewerObject theViewer, Handle data)
  167. ;
  168.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  169.         IMPORT_CFM_FUNCTION Q3ViewerWriteData
  170.     ENDIF
  171.  
  172. ; ******************************************************************************
  173. ; **                                                                             **
  174. ; **        Use this function to force the Viewer to re-draw                     **
  175. ; **                                                                             **
  176. ; ****************************************************************************
  177.  
  178. ;
  179. ; extern OSErr Q3ViewerDraw(TQ3ViewerObject theViewer)
  180. ;
  181.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  182.         IMPORT_CFM_FUNCTION Q3ViewerDraw
  183.     ENDIF
  184.  
  185. ;
  186. ; extern OSErr Q3ViewerDrawContent(TQ3ViewerObject theViewer)
  187. ;
  188.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  189.         IMPORT_CFM_FUNCTION Q3ViewerDrawContent
  190.     ENDIF
  191.  
  192. ;
  193. ; extern OSErr Q3ViewerDrawControlStrip(TQ3ViewerObject theViewer)
  194. ;
  195.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  196.         IMPORT_CFM_FUNCTION Q3ViewerDrawControlStrip
  197.     ENDIF
  198.  
  199. ; ******************************************************************************
  200. ; **                                                                             **
  201. ; **        Function used by the Viewer to filter and handle events                 **
  202. ; **                                                                             **
  203. ; ****************************************************************************
  204.  
  205. ;
  206. ; extern Boolean Q3ViewerEvent(TQ3ViewerObject theViewer, EventRecord *evt)
  207. ;
  208.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  209.         IMPORT_CFM_FUNCTION Q3ViewerEvent
  210.     ENDIF
  211.  
  212. ; ******************************************************************************
  213. ; **                                                                             **
  214. ; **        This function returns a PICT of the contents of the                  **
  215. ; **        Viewer's window.  The application should dispose the PICT.             **
  216. ; **                                                                             **
  217. ; ****************************************************************************
  218.  
  219. ;
  220. ; extern PicHandle Q3ViewerGetPict(TQ3ViewerObject theViewer)
  221. ;
  222.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  223.         IMPORT_CFM_FUNCTION Q3ViewerGetPict
  224.     ENDIF
  225.  
  226. ; ******************************************************************************
  227. ; **                                                                             **
  228. ; **                        Calls for dealing with Buttons                         **
  229. ; **                                                                             **
  230. ; ****************************************************************************
  231.  
  232. ;
  233. ; extern OSErr Q3ViewerGetButtonRect(TQ3ViewerObject theViewer, unsigned long button, Rect *rect)
  234. ;
  235.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  236.         IMPORT_CFM_FUNCTION Q3ViewerGetButtonRect
  237.     ENDIF
  238.  
  239. ;
  240. ; extern unsigned long Q3ViewerGetCurrentButton(TQ3ViewerObject theViewer)
  241. ;
  242.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  243.         IMPORT_CFM_FUNCTION Q3ViewerGetCurrentButton
  244.     ENDIF
  245.  
  246. ;
  247. ; extern OSErr Q3ViewerSetCurrentButton(TQ3ViewerObject theViewer, unsigned long button)
  248. ;
  249.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  250.         IMPORT_CFM_FUNCTION Q3ViewerSetCurrentButton
  251.     ENDIF
  252.  
  253. ; ******************************************************************************
  254. ; **                                                                             **
  255. ; **        Functions to set/get the group to be displayed by the Viewer.         **
  256. ; **                                                                             **
  257. ; ****************************************************************************
  258.  
  259. ;
  260. ; extern OSErr Q3ViewerUseGroup(TQ3ViewerObject theViewer, TQ3GroupObject group)
  261. ;
  262.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  263.         IMPORT_CFM_FUNCTION Q3ViewerUseGroup
  264.     ENDIF
  265.  
  266. ;
  267. ; extern TQ3GroupObject Q3ViewerGetGroup(TQ3ViewerObject theViewer)
  268. ;
  269.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  270.         IMPORT_CFM_FUNCTION Q3ViewerGetGroup
  271.     ENDIF
  272.  
  273. ; ******************************************************************************
  274. ; **                                                                             **
  275. ; **        Functions to set/get the color used to clear the window                 **
  276. ; **                                                                             **
  277. ; ****************************************************************************
  278.  
  279. ;
  280. ; extern OSErr Q3ViewerSetBackgroundColor(TQ3ViewerObject theViewer, TQ3ColorARGB *color)
  281. ;
  282.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  283.         IMPORT_CFM_FUNCTION Q3ViewerSetBackgroundColor
  284.     ENDIF
  285.  
  286. ;
  287. ; extern OSErr Q3ViewerGetBackgroundColor(TQ3ViewerObject theViewer, TQ3ColorARGB *color)
  288. ;
  289.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  290.         IMPORT_CFM_FUNCTION Q3ViewerGetBackgroundColor
  291.     ENDIF
  292.  
  293. ; ******************************************************************************
  294. ; **                                                                             **
  295. ; **        Getting/Setting a Viewer's View object.  Disposal is needed.         **
  296. ; **                                                                             **
  297. ; ****************************************************************************
  298.  
  299. ;
  300. ; extern TQ3ViewObject Q3ViewerGetView(TQ3ViewerObject theViewer)
  301. ;
  302.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  303.         IMPORT_CFM_FUNCTION Q3ViewerGetView
  304.     ENDIF
  305.  
  306. ;
  307. ; extern OSErr Q3ViewerRestoreView(TQ3ViewerObject theViewer)
  308. ;
  309.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  310.         IMPORT_CFM_FUNCTION Q3ViewerRestoreView
  311.     ENDIF
  312.  
  313. ; ******************************************************************************
  314. ; **                                                                             **
  315. ; **        Calls for setting/getting viewer flags                                 **
  316. ; **                                                                             **
  317. ; ****************************************************************************
  318.  
  319. ;
  320. ; extern OSErr Q3ViewerSetFlags(TQ3ViewerObject theViewer, unsigned long flags)
  321. ;
  322.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  323.         IMPORT_CFM_FUNCTION Q3ViewerSetFlags
  324.     ENDIF
  325.  
  326. ;
  327. ; extern unsigned long Q3ViewerGetFlags(TQ3ViewerObject theViewer)
  328. ;
  329.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  330.         IMPORT_CFM_FUNCTION Q3ViewerGetFlags
  331.     ENDIF
  332.  
  333. ; ******************************************************************************
  334. ; **                                                                             **
  335. ; **        Calls related to bounds/dimensions.  Bounds is the size of              **
  336. ; **        the window.  Dimensions can either be the Rect from the ViewHints     **
  337. ; **        or the current dimensions of the window (if you do a Set).             **
  338. ; **                                                                             **
  339. ; ****************************************************************************
  340.  
  341. ;
  342. ; extern OSErr Q3ViewerSetBounds(TQ3ViewerObject theViewer, Rect *bounds)
  343. ;
  344.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  345.         IMPORT_CFM_FUNCTION Q3ViewerSetBounds
  346.     ENDIF
  347.  
  348. ;
  349. ; extern OSErr Q3ViewerGetBounds(TQ3ViewerObject theViewer, Rect *bounds)
  350. ;
  351.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  352.         IMPORT_CFM_FUNCTION Q3ViewerGetBounds
  353.     ENDIF
  354.  
  355. ;
  356. ; extern OSErr Q3ViewerSetDimension(TQ3ViewerObject theViewer, unsigned long width, unsigned long height)
  357. ;
  358.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  359.         IMPORT_CFM_FUNCTION Q3ViewerSetDimension
  360.     ENDIF
  361.  
  362. ;
  363. ; extern OSErr Q3ViewerGetDimension(TQ3ViewerObject theViewer, unsigned long *width, unsigned long *height)
  364. ;
  365.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  366.         IMPORT_CFM_FUNCTION Q3ViewerGetDimension
  367.     ENDIF
  368.  
  369. ;  1.1 
  370. ;
  371. ; extern OSErr Q3ViewerGetMinimumDimension(TQ3ViewerObject theViewer, unsigned long *width, unsigned long *height)
  372. ;
  373.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  374.         IMPORT_CFM_FUNCTION Q3ViewerGetMinimumDimension
  375.     ENDIF
  376.  
  377. ; ******************************************************************************
  378. ; **                                                                             **
  379. ; **                            Port related calls                                 **
  380. ; **                                                                             **
  381. ; ****************************************************************************
  382.  
  383. ;
  384. ; extern OSErr Q3ViewerSetPort(TQ3ViewerObject theViewer, CGrafPtr port)
  385. ;
  386.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  387.         IMPORT_CFM_FUNCTION Q3ViewerSetPort
  388.     ENDIF
  389.  
  390. ;
  391. ; extern CGrafPtr Q3ViewerGetPort(TQ3ViewerObject theViewer)
  392. ;
  393.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  394.         IMPORT_CFM_FUNCTION Q3ViewerGetPort
  395.     ENDIF
  396.  
  397. ; ******************************************************************************
  398. ; **                                                                             **
  399. ; **        Adjust Cursor should be called from idle loop to allow the Viewer     **
  400. ; **        to change the cursor according to the cursor position/object under     **
  401. ; **        the cursor.                                                             **
  402. ; **                                                                             **
  403. ; ****************************************************************************
  404.  
  405. ;
  406. ; extern Boolean Q3ViewerAdjustCursor(TQ3ViewerObject theViewer, Point *pt)
  407. ;
  408.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  409.         IMPORT_CFM_FUNCTION Q3ViewerAdjustCursor
  410.     ENDIF
  411.  
  412. ;
  413. ; extern OSErr Q3ViewerCursorChanged(TQ3ViewerObject theViewer)
  414. ;
  415.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  416.         IMPORT_CFM_FUNCTION Q3ViewerCursorChanged
  417.     ENDIF
  418.  
  419.  
  420. ; ******************************************************************************
  421. ; **                                                                             **
  422. ; **        Returns the state of the viewer.  See the constant defined at the     **
  423. ; **        top of this file.                                                     **
  424. ; **                                                                             **
  425. ; ****************************************************************************
  426.  
  427. ;
  428. ; extern unsigned long Q3ViewerGetState(TQ3ViewerObject theViewer)
  429. ;
  430.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  431.         IMPORT_CFM_FUNCTION Q3ViewerGetState
  432.     ENDIF
  433.  
  434. ; ******************************************************************************
  435. ; **                                                                             **
  436. ; **                            Clipboard utilities                                 **
  437. ; **                                                                             **
  438. ; ****************************************************************************
  439.  
  440. ;
  441. ; extern OSErr Q3ViewerClear(TQ3ViewerObject theViewer)
  442. ;
  443.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  444.         IMPORT_CFM_FUNCTION Q3ViewerClear
  445.     ENDIF
  446.  
  447. ;
  448. ; extern OSErr Q3ViewerCut(TQ3ViewerObject theViewer)
  449. ;
  450.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  451.         IMPORT_CFM_FUNCTION Q3ViewerCut
  452.     ENDIF
  453.  
  454. ;
  455. ; extern OSErr Q3ViewerCopy(TQ3ViewerObject theViewer)
  456. ;
  457.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  458.         IMPORT_CFM_FUNCTION Q3ViewerCopy
  459.     ENDIF
  460.  
  461. ;
  462. ; extern OSErr Q3ViewerPaste(TQ3ViewerObject theViewer)
  463. ;
  464.     IF TARGET_OS_MAC ** TARGET_RT_MAC_CFM THEN
  465.         IMPORT_CFM_FUNCTION Q3ViewerPaste
  466.     ENDIF
  467.  
  468.     ENDIF    ; TARGET_OS_MAC
  469.  
  470.  
  471.  
  472.     ENDIF ; __QD3DVIEWER__ 
  473.  
  474.